本篇接續OSI階層的概念描述在Layer 4, Layer 5 裡常見的資安威脅。
Layer 4 : Transport Layer
前提資訊補充:
在Transport Layer中主要有兩個協定分別為Transmission Control Protocol (TCP)與User Datagram Protocol (UDP),兩者主要差異是TCP會先確認訊息傳送方與接收方連線已經建立才會開始傳送訊息,雖然速度比較慢,但較能確保資訊的完整性。UDP則相反屬於connectionless的協定,不需經過開啟、維護與中止連線等步驟,好處是訊息傳送速度較快,但相對容錯率也以比較低。
SYN flood
在TCP中傳送資料前建立連接的流程是通過TCP three-way handshake。
首先使用端發送一個連線請求(SYN)給伺服器,再由伺服器回傳一個Acknowledges (SYN-ACK)回去給使用端,最終由使用端回覆(ACK)完成連線的建立。
SYN flood的攻擊方式就是不斷發起SYN,等伺服器回覆SYN-ACK後直接裝死不回覆ACK或是讓伺服器回傳SYN-ACK時傳送到錯誤的IP,讓伺服器處於等待ACK的狀態,而影響下一位使用者。
(註: 也有些出處將smurf attack歸類為layer 3 - network layer的攻擊)
Smurf Attack
利用廣播的方式傳送一個ping packet給網路上的所有電腦,但是將IP改成要攻擊的對象,那麼當網路上的電腦收到這個packet後就會回傳一個ICMP echo packet,給這個IP。因為是廣播的關係,同時會有大量的電腦回傳這個packet,讓受攻擊的電腦頓時湧入大量的echo packet進而導致當機的情形。這個手法屬於DDoS的一種,有趣的地方是通過操弄正常的通訊協定讓不受攻擊方控制的電腦也成為攻擊者的工具之一。
Layer 5: Session Layer
前提資訊補充:
Session ID / Session token是一串資料供使用者在做網路通訊(e.g., HTTP)的時候讓伺服器辨別使用者身分的工具。也就是說只要擁有Session ID伺服器就能夠認定同一個瀏覽器送出的請求都是來自於同一個人,而不必在使用者的每一個執行步驟中、每次進入不同分頁都要重複確認身分。
Session Hijacking
因為伺服器使用Session作為身分認證的機制,如果攻擊方能拿到Session的ID就代表可以冒充使用該Session ID的使用者而獲得不屬於自己的機密資訊。這種Session Hijacking的方式可以是隨便猜一個Session ID (可以想像成拿一把鑰匙隨便試看可以打開哪一道門,雖然成功機率很低,但還是一種暴力解法)、製造一個假的Session ID然後讓使用者使用(攻擊方打從一開始就知道Session ID是多少,因為是他創造的)、從使用者與伺服器溝通的途中去竊取這個Session ID(e.g., Man-in-the-middle, sniffing)。
Session Downgrade Attacks
前情資訊補充:
在Session Layer中也有加密與驗證的機制叫做Secure Socket Layer (SSL) 為Transport Layer Security的前身,該機制的目的就是將傳送中的資訊與數據進行加密保護。
Downgrade attacks的機制就是利用TLS與SSL之間的Backward compatibility,通過Man-in-the-middle等手法讓保護機制降回舊版,接著利用舊版的漏洞展開一系列的攻擊(因為單純downgrade不會對系統或是資安上造成傷害,但是可以利用此方法搭配其他的攻擊手法進行攻擊。)